package com.o2o.app.utils;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.view.View;

public class AlertTools {
	public static AlertDialog showAlert(final Context context,
			final String title, final View view, final String ok,
			final String cancel, final DialogInterface.OnClickListener lOk,
			final DialogInterface.OnClickListener lCancel) {
		if (context instanceof Activity && ((Activity) context).isFinishing()) {
			return null;
		}

		final Builder builder = new AlertDialog.Builder(context);
		builder.setTitle(title);
		builder.setView(view);
		builder.setPositiveButton(ok, lOk);
		builder.setNegativeButton(cancel, lCancel);
		// builder.setCancelable(false);
		final AlertDialog alert = builder.create();
		alert.show();
		return alert;
	}

	/**
	 * 弹出对话框，只有确定按钮
	 * 
	 * @param ctx
	 * @param title
	 * @param text
	 * @return
	 */
	public static AlertDialog showConfirmAlert(Context ctx, String title,
			String text) {
		return showConfirmAlert(ctx, title, text, "确定");
	}

	/**
	 * 弹出一个按钮的对话框，需传入按钮名称
	 * 
	 * @param ctx
	 * @param title
	 * @param text
	 * @param sbtn
	 *            按钮名
	 * @return
	 */
	public static AlertDialog showConfirmAlert(Context ctx, String title,
			String text, String sbtn) {
		return showConfirmAlert(ctx, title, text, sbtn,
				new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						dialog.dismiss();
					}
				});
	}

	/**
	 * 弹出一个按钮的对话框，需传入按钮名称,及按钮的点击事件
	 * 
	 * @param ctx
	 * @param title
	 * @param text
	 * @param sbtn
	 * @param doYes
	 * @return
	 */
	public static AlertDialog showConfirmAlert(Context ctx, String title,
			String text, String sbtn, DialogInterface.OnClickListener doYes) {
		Builder ad = new AlertDialog.Builder(ctx);
		ad.setTitle(title);
		ad.setMessage(text);
		ad.setPositiveButton(sbtn, doYes);
		ad.setCancelable(false);
		return ad.show();
	}

	/**
	 * 弹出 确定，取消对话框， 需要传递点击监听
	 * 
	 * @param ctx
	 * @param title
	 * @param text
	 * @param doYes
	 * @param doNo
	 * @return
	 */
	public static AlertDialog showTwoBtnAlert(Context ctx, String title,
			String text, DialogInterface.OnClickListener doYes,
			DialogInterface.OnClickListener doNo) {
		return showTwoBtnAlert(ctx, title, text, "确定", "取消", doYes, doNo);
	}

	/**
	 * 弹出 两个按钮的对话框， 需要传递点击监听
	 * 
	 * @param ctx
	 * @param title
	 *            标题
	 * @param text
	 *            提示内容
	 * @param posBtnStr
	 *            前一按钮名
	 * @param negatBtnStr
	 *            后一按钮名
	 * @param doYes
	 *            前一按钮点击事件
	 * @param doNo
	 *            后一按钮点击事件
	 * @return
	 */
	public static AlertDialog showTwoBtnAlert(Context ctx, String title,
			String text, String posBtnStr, String negatBtnStr,
			DialogInterface.OnClickListener doYes,
			DialogInterface.OnClickListener doNo) {

		Builder a = new Builder(ctx);
		a.setTitle(title);
		a.setMessage(text);
		a.setCancelable(false);
		a.setPositiveButton(posBtnStr, doYes);// 显示对话框
		if (doNo != null) {
			a.setNegativeButton(negatBtnStr, doNo);
		}
		a.create();
		return a.show();
	}
}
